home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programmer's Power Pack / Delphi Volume 1.iso / e_to_l / edsspell / edsutil.pas < prev    next >
Pascal/Delphi Source File  |  1996-09-15  |  2KB  |  100 lines

  1. unit EDSUtil;
  2. interface
  3. uses
  4.   SysUtils, WinTypes, WinProcs, Messages, Classes, Controls, Graphics, Forms,
  5.   Menus, StdCtrls, ExtCtrls;
  6.  
  7. type
  8.   TEnterEdit = class(TEdit)
  9.     private
  10.       { Private declarations }
  11.     protected
  12.       { Protected declarations }
  13.       procedure KeyPress(var Key: Char); override;
  14.       procedure KeyDown (var Key: Word; Shift: TShiftState);  override;
  15.     public
  16.       { Public declarations }
  17.     published
  18.       { Published declarations }
  19.   end;  { TEnterEdit }
  20.  
  21.   TNewListBox = Class(TListBox)
  22.     private
  23.       { Private declarations }
  24.       FOnChange : TNotifyEvent;
  25.       FLastSel : integer;
  26.       procedure Click; override;
  27.     protected
  28.       { Protected declarations }
  29.       procedure Change; Virtual;
  30.     published
  31.       { Published declarations }
  32.       property OnChange : TNotifyEvent read FOnChange write FOnChange;
  33.     public
  34.       { Public declarations }
  35.       constructor create(AOwner : TComponent); override;
  36.   end;  { TNewListBox }
  37.  
  38. procedure Register;
  39.  
  40. implementation
  41.  
  42. procedure TEnterEdit.KeyPress(var Key: Char);
  43. var
  44.    MYForm: TForm;
  45. begin
  46.   if Key = #13 then
  47.   begin
  48.     MYForm := GetParentForm( Self );
  49.     if not (MYForm = nil ) then
  50.       SendMessage(MYForm.Handle, WM_NEXTDLGCTL, 0, 0);
  51.     Key := #0;
  52.   end;  { if... }
  53.   if Key <> #0 then inherited KeyPress(Key);
  54. end;  { TEnterEdit.KeyPress }
  55.  
  56. procedure TEnterEdit.KeyDown (var Key: Word; Shift: TShiftState);
  57. var
  58.   St: string;
  59. begin
  60.   case Key of
  61.     VK_UP: if ssCtrl in Shift then
  62.            begin
  63.              Text := UpperCase (Text);
  64.              Key  := 0;
  65.            end;  { if... }
  66.     VK_DOWN: if ssCtrl in Shift then
  67.              begin
  68.                St    := UpperCase (Text);
  69.                St[1] := UpCase (St[1]);
  70.                Text  := St;
  71.                Key  := 0;
  72.              end;  { case }
  73.   end;  { case }
  74. end;  { TEnterEdit.KeyDown }
  75.  
  76. constructor TNewListBox.Create;
  77. begin
  78.   inherited Create(AOwner);
  79.   FLastSel := -1;
  80. end;  { TNewListBox.Create }
  81.  
  82. procedure TNewListBox.Change;
  83. begin
  84.   if assigned(FOnChange) then FOnChange(self);
  85. end;  { TNewListBox.Change }
  86.  
  87. procedure TNewListBox.Click;
  88. begin
  89.   inherited Click;
  90.   if FLastSel <> ItemIndex then
  91.      Change;
  92. end;  { TNewListBox.Click }
  93.  
  94. procedure Register;
  95. begin
  96.   RegisterComponents('Domain', [TEnterEdit, TNewListBox]);
  97. end;
  98.  
  99. end.  { EDSUtil }
  100.